package asiento;

import java.math.BigDecimal;

public class Asiento {

	public enum ClaseAsiento {
		 TURISTA, EJECUTIVA, PRIMERACLASE
	}
	
	public enum UbicacionEnAvion {
		 VENTANA, CENTRO, PASILLO
	}
	
	public enum Estado {
		 RESERVADO, DISPONIBLE
	}
	
	private String codigoAsiento;
	private BigDecimal precio;
	private ClaseAsiento claseAsiento;	
	private UbicacionEnAvion ubicacionEnAvion;
	private Estado estado;
	


	
	public void setCodigoAsiento(String codigoAsiento) {
		this.codigoAsiento = codigoAsiento;
	}
	
	public String getCodigoAsiento() {
		return codigoAsiento;
	}
	
	public void setPrecio(BigDecimal precio) {
		this.precio = precio;
	}
	
	public BigDecimal getPrecio() {
		return precio;
	}
	   
	public void setClaseAsiento(String value){ 
		this.claseAsiento = ClaseAsiento.valueOf(value); 
	}
	
	public ClaseAsiento getClaseAsiento(){ 
		return this.claseAsiento;
	}
	 
	public void setUbicacionEnAvion(String ubicacionEnAvion) {
		this.ubicacionEnAvion = UbicacionEnAvion.valueOf(ubicacionEnAvion);
	}
	
	public UbicacionEnAvion getUbicacionEnAvion() {
		return this.ubicacionEnAvion;
	}
	
	public void setEstado(String estado) {
		this.estado = Estado.valueOf(estado);
	}
	
	public String getEstado() {
		return this.estado.toString();
	}
	
	
	
	
	public boolean esDeLaMismaClaseDeAsiento(ClaseAsiento claseAsiento) {
		return this.claseAsiento.equals(claseAsiento);
	}
	
	public boolean esDelMismoTipoDeUbicacion(UbicacionEnAvion tipoUbicacion) {
		return this.ubicacionEnAvion.equals(tipoUbicacion);
	}
	
	public boolean cumpleCondicionesDeSuperOferta() {		
		 
		return ((this.claseAsiento.equals(ClaseAsiento.PRIMERACLASE))&&(this.esMenor(this.precio,new BigDecimal("8000")))||(this.claseAsiento.equals(ClaseAsiento.EJECUTIVA))&&(this.esMenor(this.precio,new BigDecimal("4000"))));
		
	}

	public boolean esMenor(BigDecimal precio, BigDecimal precioComparacion) {
		
		if(precio.compareTo(precioComparacion)==-1){
			return true;
		}else{
			return false;
		}
	
	}

	
}
